In [1]:
    
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from ipywidgets import interact_manual, interact
from ipywidgets import Button, HBox, IntText, HTML, VBox
from IPython.display import display, clear_output
    
In [2]:
    
%load_ext autoreload
%autoreload 2
    
On charge les propositions présidentielles.
In [3]:
    
from funcs import load_data
    
In [4]:
    
propositions, candidate_labels = load_data()
    
In [5]:
    
from funcs import GUI
    
In [6]:
    
%matplotlib inline
    
In [7]:
    
gui = GUI(candidate_labels, propositions)
display(gui.box)
    
    
In [ ]:
    
def make_df(candidate, candidate_label):
    "Returns a dataframe with candidate name."
    ind_s = pd.Series(index=candidate.index, data=[candidate_label], name='candidat')
    return pd.DataFrame(data=[ind_s, candidate]).transpose()
    
In [ ]:
    
all_propositions = pd.concat([make_df(c, label) for c, label in zip(candidates, candidate_labels)])
    
In [ ]:
    
ind = all_propositions['proposition'].str.lower().str.contains('vert')
    
In [ ]:
    
all_propositions[ind]
    
In [ ]:
    
mask = all_propositions[ind]
    
In [ ]:
    
mask.groupby(by='candidat').sum().iloc[0].values
    
In [ ]:
    
from ipywidgets import interact, IntSlider, SelectMultiple
    
In [ ]:
    
mask.size
    
In [ ]:
    
slider = IntSlider(min=0, max=mask.size - 1)
slider
    
In [ ]:
    
selector = SelectMultiple(
        options=mask['proposition'].values.tolist(),
        value=[],
        description='',
        disabled=False,
        )
selector.layout.width='500px'
selector.layout.height = "300px"
    
In [ ]:
    
@interact
def search_for_props(search='croissance'):
    ind = all_propositions['proposition'].str.lower().str.contains(search)
    mask = all_propositions[ind]
    selector.options = mask['proposition'].values.tolist()
display(selector)
    
In [ ]: